﻿package com.manyiaby.view.viewutils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by yx on 2017/11/2.
 */

public class DataTimeUtil {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    private static SimpleDateFormat mysdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");
    private static SimpleDateFormat mysdfb = new SimpleDateFormat("MM月dd日");
    /**
     * 获取【系统时间】 转换成【yyyy/MM/dd HH:mm:ss格式】
     *
     * @return
     */
    public static String getSystemTime() {
        Date curDate = new Date(System.currentTimeMillis());//获取当前时间
        return sdf.format(curDate);
    }


    /**
     * 两个时间比较
     *
     * @param time1
     * @param time2
     * @return
     */
    public static int compare_date(String time1, String time2) {
        Date dt1 = null;
        Date dt2 = null;
        try {
            dt1 = sdf.parse(time1);
            dt2 = sdf.parse(time2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        if (dt1.getTime() > dt2.getTime()) {//时间1大于时间2
            return 0;
        } else if (dt1.getTime() < dt2.getTime()) {//时间1小于时间2
            return 1;
        }
        return -1;
    }


    /**
     * 将 【yyyy/MM/dd HH:mm:ss格式】 转换成 【yyyy.MM.dd HH:mm格式】  并 【返回字符串】
     *
     * @param times
     * @return
     */
    public static String DateToStr(String times) {
        String str = "";
        try {
            //1，将传进来的时间，匹配到yyyy/MM/dd HH:mm:ss格式后，转换成Date 对象
            Date date = sdf.parse(times);

            //2.将Date对象转换成yyyy.MM.dd HH:mm格式
            str = mysdf.format(date);

        } catch (ParseException e) {
            e.printStackTrace();
        }
        return str;
    }

    /**
     * 将 【yyyy/MM/dd HH:mm:ss格式】 转换成 【MM月dd日格式】  并 【返回字符串】
     *
     * @param times
     * @return
     */
    public static String DateToStrb(String times) {
        String str = "";
        try {
            //1，将传进来的时间，匹配到yyyy/MM/dd HH:mm:ss格式后，转换成Date 对象
            Date date = sdf.parse(times);

            //2.将Date对象转换成yyyy.MM.dd HH:mm格式
            str = mysdfb.format(date);

        } catch (ParseException e) {
            e.printStackTrace();
        }
        return str;
    }





 /**
     * 调此方法输入所要转换的时间输入例如（"2014年06月14日16时09分00秒"）返回时间戳2014年06月14日
     *
     * @param dateStr
     * @return
     */
    public static String getTimeStamp(String dateStr) {
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CANADA);
        Date date;
        String times = null;
        try {
            date = sdr.parse(dateStr);
            long l = date.getTime();
            String stf = String.valueOf(l);
            times = stf.substring(0, 10);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return times;
    }
    /**
     * 调此方法输入所要转换的时间输入例如（"2014-06-14 16:09:00"）返回时间戳2014-06-14 
     *
     * @param dateStr
     * @return
     */
    public static String getTimeStampE(String dateStr) {
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
        Date date;
        String times = null;
        try {
            date = sdr.parse(dateStr);
            long l = date.getTime();
            String stf = String.valueOf(l);
            times = stf.substring(0, 10);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return times;
    }


    /**
     * 将错误的时间格式“2017年1月1日”转换成正确的格式“2017年01月01日”
     *
     * @param dateStr
     * @return
     */
    public static String getResetDate(String dateStr) {
        String month="";
        String day="";
        try {
            month=dateStr.substring(dateStr.indexOf("年")+1,dateStr.indexOf("月"));
            if(month.length()==1){
                dateStr=dateStr.replace("年","年0");
            }
            day=dateStr.substring(dateStr.indexOf("月")+1,dateStr.indexOf("日"));
            if(day.length()==1){
                dateStr=dateStr.replace("月","月0");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dateStr;

    }
    /**
     * 将错误的时间格式“2017年1月1日 0:0”转换成正确的格式“2017年01月01日 00:00”
     *
     * @param dateStr
     * @return
     */
    public static String getResetDateStr(String dateStr) {
        String month="";
        String day="";
        String hour="";
        String minute="";
        try {
            month=dateStr.substring(dateStr.indexOf("年")+1,dateStr.indexOf("月"));
            if(month.length()==1){
                dateStr=dateStr.replace("年","年0");
            }
            day=dateStr.substring(dateStr.indexOf("月")+1,dateStr.indexOf("日"));
            if(day.length()==1){
                dateStr=dateStr.replace("月","月0");
            }
            if(!dateStr.contains(" ")){
                dateStr+=" 00:00";
            }
            hour=dateStr.substring(dateStr.indexOf(" ")+1,dateStr.indexOf(":"));
            if(hour.length()==1){
                dateStr=dateStr.replace(" "," 0");
            }
            minute=dateStr.substring(dateStr.indexOf(":")+1,dateStr.length());
            if(minute.length()==1){
                dateStr=dateStr.replace(":",":0");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dateStr;

    }
    /**
     * 将“2017年01月01日 00时00分”转换成正确的格式“2017.01.01 00:00”
     *
     * @param dateStr
     * @return
     */
    public static String getRChangeDateStr(String dateStr) {
        try {
            dateStr=dateStr.replace("年",".");
            dateStr=dateStr.replace("月",".");
            dateStr=dateStr.replace("日"," ");
            dateStr=dateStr.replace("时",":");
            dateStr=dateStr.replace("分","");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dateStr;

    }
    /**
     * 将“2017年01月01日 00时00分”转换成正确的格式“2017-01-01 00:00”
     *
     * @param dateStr
     * @return
     */
    public static String getChangeDateStr(String dateStr) {
        try {
            dateStr=dateStr.replace("年","-");
            dateStr=dateStr.replace("月","-");
            dateStr=dateStr.replace("日"," ");
            dateStr=dateStr.replace("时",":");
            dateStr=dateStr.replace("分","");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dateStr;

    }
    /**
     * 调用此方法输入所要转换的时间戳输入例如（1402733340）输出（"2014年06月14日16时09分"）
     *
     * @param dateStr
     * @return
     */
    public static String getTimeStamp2(String dateStr) {
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
        long lcc = Long.valueOf(dateStr);
        int i = Integer.parseInt(dateStr);
        String times = sdr.format(new Date(i * 1000L));
        return times;

    }










}
